﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WMM.Tapioca.Taxonomy;

namespace WMM.Tapioca.XbrlDimension
{
    /// <summary>
    /// A Member is a Dimension Member as defined in the XDT specification. 
    /// </summary>
    public class Member
    {
        private Concept concept;  

        /// <returns> the concept the member refers to. </returns>
        public Concept Concept
        {
            get { return concept; }
            set { concept = value; }
        }

        //private Dimension parentDimension;

        private Domain domain;

        /// <returns> the domain of this member. </returns>
        public Domain Domain
        {
            get { return domain; }
            set { domain = value; }
        }

        /// <param name="concept">
        /// The Concept object which represents the member. </param>
        /// <param name="domain">
        /// The domain object which contains the member. </param>
        public Member(Concept concept, Domain domain)
        {
            this.concept = concept;
            Domain = domain;

        }

        //  Access back to the dimensions this member has belongs to
        Dimension GetDimension()
        {
            return null;
        }
        
        // Returns the available sub members of this member.
        Domain GetDomain()
        {
            return null;
        }
          
	    // Returns true if the member is a Domain and has sub-members
        bool HasDomain()
        {
            return false;
        }
        
        // This method returns true if the member associated is abstract
        bool IsAbstract()
        {
            return false;
        }

        // This method returns true if the member is a primary item, otherwise is a dimension member of either an XDT dimension or a Virtual dimension
        bool IsPrimary()
        {
            return false;
        }
          
    }
}
